# -*- coding: utf-8 -*-
"""
Created on Wed Aug 16 06:31:58 2023

@author: skunk69
"""

import json

chinese_name = u'青少年学生生活满意度量表'
english_name = 'Adolescent Student Life Satisfaction Scale'
abbreviation = 'ASLSS'
category = u'生活质量与满意度量表'

outline = u"""生活满意度是衡量主观幸福的重要认知指标，是指一个人依照自己选择的标准对自己大部分时间或持续一定时期的生活状况的总体性认知评估，是在积极到消极连续体上对其生活质量的整体认识和评价，是某一个社会中个人生活质量的主要参数。生活满意度以客观的外界刺激为基础，以认知评价为中介，以主观体验为最终的表现形式，所以它具有整体性和相对稳定性这种对社会生活各个领域的主观评价又会影响个体的情绪体验，从而影响到个体生活目标的定为和行为追求的取向，对个体乃至社会都产生重要的影响。
《青少年学生生活满意度量表》（Adolescent Student Life Satisfaction Scale, ASLSS）是一种用于评估青少年学生在学习和生活方面的满意度的心理测量工具。这种量表基于Huebner于1994年编制的青少年多维生活满意度量表，由张兴贵和何立国于2004年进一步发展和完善，以更好地适应青少年学生的实际需求。"""

instruction = u"""本问卷是用于了解过去几周以来你对自己生活状况的看法，请你仔细阅读下面的每一语句，参照你在大多数时间的生活状况，选择最符合你的观点选项。问卷答案无对错之分，请按照你的真实想法和感受认真作答。"""

with open('ASLSS.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for line in lines[0::8]:
    key,value = line.strip().split('.',maxsplit=1)
    items[key] = value.strip()

reverse_items = [3,4,9,10]
scales = [u'友谊满意度',u'家庭满意度',u'学业满意度',u'自由满意度',u'学校满意度',
          u'环境满意度']
scales_items = [
    [1,7,13,19,25,31,35],# 友谊满意度
    [2,8,14,20,26,32,36],# 家庭满意度
    [6,12,18,24,30,34],# 学业满意度
    [5,11,17,23,29],# 自由满意度
    [3,9,15,21,27,33],# 学校满意度
    [4,10,16,22,28],# 环境满意度
    ]

# check scales_items
print(f'scale length={[len(l) for l in scales_items]}')

check = []
for l in scales_items:
    check = check+l
print(f'len(check)={len(check)}')

# complementary set
check_set = {i for i in sorted(check)}^{i for i in range(1,37)}
print(f'complementary set= {check_set}')

factors = []
factors_scales = []
rating = [l.strip().split('.')[-1] for l in lines[1:8]]
score_rules = list(range(1,8))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《青少年学生生活满意度量表》属于一个自评量表。"""

reliability = u"""正式样本为大学生和中学生群体样本。友谊、家庭、学业、自由、学校和环境6个维度的内部一致性α系数为0.71~0.87，全量表为0.91。6个维度的重测信度为0.67~0.78，全量表为0.82，P值均小于0.01。"""
validity = u"""在结构效度方面，将样本随机分半抽样，采用主成分分析方法进行探索性因素分析，得到了与原假设相吻合的六因子模型。在效标效度方面，ASLSS与一般生活满意度量表的相关为0.37，与正性情感和负性情感的相关分别为0.51和-9.36，与大五人格中抑郁和焦虑量表的相关分别为-0.45和-0.39。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""首先将反向题目反向计分，然后将各维度题目相加得到各维度分，由维度分合成得到该量表的总分，反映了被测者生活满意度的总体状况。"""

applications = u"""实践表明，该量表是一个测量青少年生活满意度的较好工具。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)